Soru & Cevap

Bu Kodda Hata Nerede!

05.10.2015 - 05:06
------------------
 String cumle = "isim,musa soyisim,demir yas,21 kilo,80 boy,180";
 kategorile(cumle);
--------------------
String isim="",soyisim="",yas="",kilo="",boy="";
    void kategorile(String donut){
        TextView tvkotnrol=(TextView)findViewById(R.id.tvkotnrol);
        String[] gelen=donut.split(" ");
        String[] kontrol;
        for (int i = 0 ; i<gelen.length;i++){
            kontrol = gelen[i].split(",");
      
            if(kontrol[0]=="isim"){
                isim=gelen[i];                
            }else if(kontrol[0]=="soyisim"){
                soyisim=gelen[i];
            }else if(kontrol[0]=="yas"){
                yas=gelen[i];
            }else if(kontrol[0]=="kilo"){
                kilo=gelen[i];
            }else if(kontrol[0]=="boy"){
                boy=gelen[i];
            }
        }
        tvlink.setText("isim" + isim+ " " + "soyisim" + soyisim+ " " + "yas" + yas+ " " +
                "kilo" + kilo+ " " + "boy" + boy+ " ");
    }

Bu kodda hata nerede acaba textviewa yazdırdığımda isim soyisim yas kilo boy stringlerininn içlerini boş görüyor doldurmuyor.

6 Görüntülenme

2 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

picture-7541-1521024507.jpg
burhanaras
10.10.2015 - 11:03

String compare yaparken mutlaka equals("")  methodunu kullanmalısınız.

== operatörü primitive'ler içindir.

picture-7307-1432542084.jpg
rooest
05.10.2015 - 06:54

İki stringin değerlerinin eşitliğini kontrol etmek istersen   ==  operatörü yerine  .equals()  kullanmalısın.  Sebebinine gelirsek  "=="  operatörü  nesnelerin referans eşitliğini karşılaştırıken,  .equals() değerleri  karşılaştırır. 

Senin  örneğinde uygularsak  aşşağıdaki gibi olacaktır. 

if (kontrol[0].equals("isim")) {
                isim = gelen[i];
            } else if (kontrol[0].equals("soyisim")) {
                soyisim = gelen[i];
            } else if (kontrol[0].equals("yas")) {
                yas = gelen[i];
            } else if (kontrol[0].equals("kilo")) {
                kilo = gelen[i];
            } else if (kontrol[0].equals("boy")) {
                boy = gelen[i];
            }

 

Musa Demir
05.10.2015 - 07:16
Çok teşekkürler c# tan kalan bir alışkanlık androide yeni atılınca böyle bir karışıklık olmuş teşekkür ederim